package com.yl.users.services

import com.yl.common.control.ResponseBody
import com.yl.users.entity.CompanyPermissionsView
import com.yl.users.entity.CompanyRole
import com.yl.users.pojo.vo.CompanyPermissionsViewSelectVo

/**
 * 公司角色服务
 */
interface ICompanyRoleService {

	/**
	 * 单个角色详情
	 */
	fun getCompanyRole(roleId: Long): CompanyRole?

	/**
	 * 清除角色的所有权限
	 */
	fun delAllPermToRole(roleId: Long)

	/**
	 * 给角色添加权限
	 */
	fun addPermToRole(roleId: Long, permViesIds: List<Long>)

	/**
	 * 修改角色信息（只有信息不包含授权）
	 */
	fun update(companyRole: CompanyRole): ResponseBody


	/**
	 * 绑定角色菜单按钮权限
	 */
	fun reBindRolePermissions(roleId: Long, permViesIds: List<Long>): ResponseBody

	/**
	 * 绑定角色字段权限
	 * @param fields
	 * @param roleId
	 */
	fun reBindRoleField(fields: List<Long>, roleId: Long)

	/**
	 * 删除id
	 * @param roleId
	 */
	fun delRole(roleId: Long)

	/**
	 * 获取角色所有的权限id
	 */
	fun getRolePermIds(roleId: Long): List<Long>

	/**
	 * 获取角色权限列表
	 */
	fun getRolePermList(roleId: Long, vo: CompanyPermissionsViewSelectVo): List<CompanyPermissionsView>

	/**
	 * 获取角色所有的字段id
	 */
	fun getRoleFieldIds(roleId: Long): List<Long>

	/**
	 * 获取角色字段列表
	 */
	fun getRoleFieldList(roleId: Long): List<CompanyPermissionsView>


}